package com.example.demo.service;

import com.example.demo.entity.Employee;
import com.example.demo.mapper.EmployeeMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;


import java.util.List;

/**
 * 员工服务类
 * 处理员工相关的业务逻辑
 */
@Service
public class EmployeeService  {

    @Resource
   private EmployeeMapper employeeMapper;


    /**
     * 查询所有员工信息
     * @return 员工列表
     */
    public List<Employee> selectAll() {
        return employeeMapper.selectAll();
    }


    /**
     * 根据ID查询员工信息
     * @param id 员工ID
     * @return 单个员工对象
     */
    public Employee selectById(Integer id) {
        return employeeMapper.selectById(id);
    }

    /**
     * 添加新员工
     * @param employee 员工对象，包含姓名、性别、年龄、描述信息
     * @return 受影响的行数（1表示成功，0表示失败）
     */
    public int add(Employee employee) {
        return employeeMapper.add(employee);
    }

    /**
     * 分页查询员工信息
     * @param pageNum 页码
     * @param pageSize 每页显示数量
     * @return 分页后的员工列表
     */
    public PageInfo<Employee> selectByPage(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<Employee> employees = employeeMapper.selectAll();
        return PageInfo.of(employees);
    }

    /**
     * 更新员工信息
     * @param employee 员工对象，包含ID、姓名、性别、年龄、描述信息
     * @return 受影响的行数（1表示成功，0表示失败）
     */
    public int update(Employee employee) {
        return employeeMapper.update(employee);
    }

    /**
     * 删除员工信息
     * @param id 员工ID
     * @return 受影响的行数（1表示成功，0表示失败）
     */
    public int delete(Integer id) {
        return employeeMapper.delete(id);
    }

    /**
     * 批量删除员工信息
     * @param ids 员工ID列表
     * @return 受影响的行数（1表示成功，0表示失败）
     */
    public int deleteByIds(List<Integer> ids) {
        return employeeMapper.deleteByIds(ids);
    }
}
